import { defineConfig, loadEnv, type ConfigEnv, type UserConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { resolve } from 'path'

// https://vitejs.dev/config/
//npm i @types/node
export default defineConfig(({ command: _, mode }: ConfigEnv): UserConfig => {
  // 根据当前工作目录中的 `mode` 加载 .env 文件
  // 设置第三个参数为 '' 来加载所有环境变量，而不管是否有 `VITE_` 前缀。
  const env = loadEnv(mode, process.cwd(), 'VITE_')
  return {
    plugins: [vue()],

    //代理
    server: {
      port: Number(env.VITE_API_PORT),
      open: true,
      proxy: {
        '/api': {
          //允许跨域
          changeOrigin: true,
          target: `${env.VITE_API_SERVER}:${env.VITE_SERVER_PORT}`, //这里后台的地址模拟的;应该填写你们真实的后台接口
          rewrite: path => path.replace(/^\/api/, '')
        },
      }
    },
    //配置@
    resolve: {
      alias: {
        "@": resolve(__dirname, './src'),
      }
    },
    build: {
      assetsInlineLimit: 0 // 确保wasm文件不被内联
    },
    //打包时代码压缩底层使用esbuild，并排除console和debugger语句
    // esbuild: {
    //   drop: ['console', 'debugger']
    // }
  }
})